package com.peng.scalatest

/**
 * 偏函数
 */
object ScalaTest8_PartialFunction {
  def main(args: Array[String]): Unit = {
    println(myFun("hello"))
    println(myFun.applyOrElse(444, (x: Int) => "222")) //为了兜底那些匹配不上的值，可以使用applyOrElse，匹配不到就去执行指定的回调函数

  }

  /**
   * 该函数返回的是 一个PartialFunction[Any,String]函数，  然后这个函数是一个入参一个出参的，内部可以使用case匹配
   *
   * @return
   */
  def myFun: PartialFunction[Any, String] = {
    case "hello" => "world"
    case 123 => "num"
    //    case xxx: Int => s"$xxx int ~~"
    //    case _ => "other.."
  }


}
